#!/bin/bash

set -eu

export scriptPath="$(echo $0 | sed "s|^\.\./|`pwd`/../|" | sed "s|^\./|`pwd`/|")"
export baseDir="$(dirname "${scriptPath}")"
export bhDir="$(dirname "${baseDir}")"
export includeDir="${baseDir}/Include/"
defaultArchive="naoqi-sdk-2.1.4.13-linux32.tar.gz"

source "${includeDir}/bhumanBase"

includesAlcommon="
include/alcommon/albroker.h \
include/alcommon/alfunctor.h \
include/alcommon/almethodinfo.h \
include/alcommon/almodule.h \
include/alcommon/almodulecore.h \
include/alcommon/almoduleinfo.h \
include/alcommon/alproxy.h \
include/alcommon/alproxy.hxx \
include/alcommon/api.h \
include/alerror/alerror.h \
include/alerror/config.h \
include/alproxies/almemoryproxy.h \
include/alproxies/api.h \
include/alproxies/dcmproxy.h \
include/alvalue/alvalue.h \
include/alvalue/config.h \
include/qi/api.hpp \
include/qi/atomic.hpp \
include/qi/buffer.hpp \
include/qi/config.hpp \
include/qi/details/eventloop.hxx \
include/qi/details/future.hxx \
include/qi/details/log.hxx \
include/qi/details/trackable.hxx \
include/qi/details/warn_pop_ignore_deprecated.hpp \
include/qi/details/warn_push_ignore_deprecated.hpp \
include/qi/eventloop.hpp \
include/qi/future.hpp \
include/qi/log.hpp \
include/qi/macro.hpp \
include/qi/os.hpp \
include/qi/preproc.hpp \
include/qi/stats.hpp \
include/qi/trackable.hpp \
include/qi/traits.hpp \
include/qi/types.hpp \
include/qimessaging/api.hpp \
include/qimessaging/serviceinfo.hpp \
include/qimessaging/session.hpp \
include/qimessaging/url.hpp \
include/qitype/anyfunction.hpp \
include/qitype/anyobject.hpp \
include/qitype/anyreference.hpp \
include/qitype/api.hpp \
include/qitype/config.hpp \
include/qitype/details/accessor.hxx \
include/qitype/details/anyfunction.hxx \
include/qitype/details/anyfunctionfactory.hxx \
include/qitype/details/anyiterator.hpp \
include/qitype/details/anyiterator.hxx \
include/qitype/details/anyobject.hxx \
include/qitype/details/anyreference.hpp \
include/qitype/details/anyreference.hxx \
include/qitype/details/anyvalue.hpp \
include/qitype/details/anyvalue.hxx \
include/qitype/details/bindtype.hxx \
include/qitype/details/buffertypeinterface.hxx \
include/qitype/details/dynamicobjectbuilder.hxx \
include/qitype/details/dynamictypeinterface.hxx \
include/qitype/details/functionsignature.hxx \
include/qitype/details/hasless.hxx \
include/qitype/details/inttypeinterface.hxx \
include/qitype/details/listtypeinterface.hxx \
include/qitype/details/maptypeinterface.hxx \
include/qitype/details/objecttypebuilder.hxx \
include/qitype/details/pointertypeinterface.hxx \
include/qitype/details/property.hxx \
include/qitype/details/signal.hxx \
include/qitype/details/stringtypeinterface.hxx \
include/qitype/details/structtypeinterface.hxx \
include/qitype/details/type.hxx \
include/qitype/details/typeimpl.hxx \
include/qitype/details/typeinterface.hpp \
include/qitype/dynamicobject.hpp \
include/qitype/dynamicobjectbuilder.hpp \
include/qitype/fwd.hpp \
include/qitype/manageable.hpp \
include/qitype/metamethod.hpp \
include/qitype/metaobject.hpp \
include/qitype/metaproperty.hpp \
include/qitype/metasignal.hpp \
include/qitype/objecttypebuilder.hpp \
include/qitype/property.hpp \
include/qitype/signal.hpp \
include/qitype/signature.hpp \
include/qitype/typeinterface.hpp \
include/qitype/typeobject.hpp \
"

includesBoost="
include/boost/aligned_storage.hpp \
include/boost/any.hpp \
include/boost/assert.hpp \
include/boost/bind.hpp \
include/boost/bind/arg.hpp \
include/boost/bind/bind.hpp \
include/boost/bind/bind_cc.hpp \
include/boost/bind/bind_mf2_cc.hpp \
include/boost/bind/bind_mf_cc.hpp \
include/boost/bind/bind_template.hpp \
include/boost/bind/mem_fn.hpp \
include/boost/bind/mem_fn_cc.hpp \
include/boost/bind/mem_fn_template.hpp \
include/boost/bind/placeholders.hpp \
include/boost/bind/storage.hpp \
include/boost/blank.hpp \
include/boost/blank_fwd.hpp \
include/boost/cerrno.hpp \
include/boost/checked_delete.hpp \
include/boost/chrono/ceil.hpp \
include/boost/chrono/clock_string.hpp \
include/boost/chrono/config.hpp \
include/boost/chrono/detail/is_evenly_divisible_by.hpp \
include/boost/chrono/detail/static_assert.hpp \
include/boost/chrono/detail/system.hpp \
include/boost/chrono/duration.hpp \
include/boost/chrono/system_clocks.hpp \
include/boost/chrono/time_point.hpp \
include/boost/config.hpp \
include/boost/config/abi_prefix.hpp \
include/boost/config/abi_suffix.hpp \
include/boost/config/auto_link.hpp \
include/boost/config/compiler/clang.hpp \
include/boost/config/no_tr1/cmath.hpp \
include/boost/config/no_tr1/functional.hpp \
include/boost/config/no_tr1/memory.hpp \
include/boost/config/no_tr1/utility.hpp \
include/boost/config/platform/linux.hpp \
include/boost/config/posix_features.hpp \
include/boost/config/requires_threads.hpp \
include/boost/config/select_compiler_config.hpp \
include/boost/config/select_platform_config.hpp \
include/boost/config/select_stdlib_config.hpp \
include/boost/config/stdlib/libstdcpp3.hpp \
include/boost/config/suffix.hpp \
include/boost/config/user.hpp \
include/boost/cstdint.hpp \
include/boost/current_function.hpp \
include/boost/date_time/adjust_functors.hpp \
include/boost/date_time/c_time.hpp \
include/boost/date_time/compiler_config.hpp \
include/boost/date_time/constrained_value.hpp \
include/boost/date_time/date.hpp \
include/boost/date_time/date_clock_device.hpp \
include/boost/date_time/date_defs.hpp \
include/boost/date_time/date_duration.hpp \
include/boost/date_time/date_duration_types.hpp \
include/boost/date_time/date_generators.hpp \
include/boost/date_time/date_iterator.hpp \
include/boost/date_time/dst_rules.hpp \
include/boost/date_time/filetime_functions.hpp \
include/boost/date_time/gregorian/conversion.hpp \
include/boost/date_time/gregorian/greg_calendar.hpp \
include/boost/date_time/gregorian/greg_date.hpp \
include/boost/date_time/gregorian/greg_day.hpp \
include/boost/date_time/gregorian/greg_day_of_year.hpp \
include/boost/date_time/gregorian/greg_duration.hpp \
include/boost/date_time/gregorian/greg_duration_types.hpp \
include/boost/date_time/gregorian/greg_month.hpp \
include/boost/date_time/gregorian/greg_weekday.hpp \
include/boost/date_time/gregorian/greg_year.hpp \
include/boost/date_time/gregorian/greg_ymd.hpp \
include/boost/date_time/gregorian/gregorian_types.hpp \
include/boost/date_time/gregorian_calendar.hpp \
include/boost/date_time/gregorian_calendar.ipp
include/boost/date_time/int_adapter.hpp \
include/boost/date_time/locale_config.hpp \
include/boost/date_time/microsec_time_clock.hpp \
include/boost/date_time/period.hpp \
include/boost/date_time/posix_time/conversion.hpp \
include/boost/date_time/posix_time/date_duration_operators.hpp \
include/boost/date_time/posix_time/posix_time_config.hpp \
include/boost/date_time/posix_time/posix_time_duration.hpp \
include/boost/date_time/posix_time/posix_time_system.hpp \
include/boost/date_time/posix_time/posix_time_types.hpp \
include/boost/date_time/posix_time/ptime.hpp \
include/boost/date_time/posix_time/time_period.hpp \
include/boost/date_time/special_defs.hpp \
include/boost/date_time/time.hpp \
include/boost/date_time/time_clock.hpp \
include/boost/date_time/time_defs.hpp \
include/boost/date_time/time_duration.hpp \
include/boost/date_time/time_iterator.hpp \
include/boost/date_time/time_resolution_traits.hpp \
include/boost/date_time/time_system_counted.hpp \
include/boost/date_time/time_system_split.hpp \
include/boost/date_time/wrapping_int.hpp \
include/boost/date_time/year_month_day.hpp \
include/boost/detail/container_fwd.hpp \
include/boost/detail/indirect_traits.hpp \
include/boost/detail/iterator.hpp \
include/boost/detail/no_exceptions_support.hpp \
include/boost/detail/reference_content.hpp \
include/boost/detail/scoped_enum_emulation.hpp \
include/boost/detail/sp_typeinfo.hpp \
include/boost/detail/templated_streams.hpp \
include/boost/detail/workaround.hpp \
include/boost/enable_shared_from_this.hpp \
include/boost/exception/detail/attribute_noreturn.hpp \
include/boost/exception/exception.hpp \
include/boost/format.hpp \
include/boost/format/alt_sstream.hpp \
include/boost/format/alt_sstream_impl.hpp \
include/boost/format/detail/compat_workarounds.hpp \
include/boost/format/detail/config_macros.hpp \
include/boost/format/detail/msvc_disambiguater.hpp \
include/boost/format/detail/unset_macros.hpp \
include/boost/format/detail/workarounds_gcc-2_95.hpp \
include/boost/format/detail/workarounds_stlport.hpp \
include/boost/format/exceptions.hpp \
include/boost/format/feed_args.hpp \
include/boost/format/format_class.hpp \
include/boost/format/format_fwd.hpp \
include/boost/format/format_implementation.hpp \
include/boost/format/free_funcs.hpp \
include/boost/format/group.hpp \
include/boost/format/internals.hpp \
include/boost/format/internals_fwd.hpp \
include/boost/format/parsing.hpp \
include/boost/function.hpp \
include/boost/function/detail/function_iterate.hpp \
include/boost/function/detail/maybe_include.hpp \
include/boost/function/detail/prologue.hpp \
include/boost/function/function0.hpp \
include/boost/function/function1.hpp \
include/boost/function/function10.hpp \
include/boost/function/function2.hpp \
include/boost/function/function3.hpp \
include/boost/function/function4.hpp \
include/boost/function/function5.hpp \
include/boost/function/function6.hpp \
include/boost/function/function7.hpp \
include/boost/function/function8.hpp \
include/boost/function/function9.hpp \
include/boost/function/function_base.hpp \
include/boost/function/function_fwd.hpp \
include/boost/function/function_template.hpp \
include/boost/function_equal.hpp \
include/boost/function_types/components.hpp \
include/boost/function_types/config/cc_names.hpp \
include/boost/function_types/config/compiler.hpp \
include/boost/function_types/config/config.hpp \
include/boost/function_types/detail/class_transform.hpp \
include/boost/function_types/detail/components_as_mpl_sequence.hpp \
include/boost/function_types/detail/components_impl/arity10_0.hpp \
include/boost/function_types/detail/components_impl/arity10_1.hpp \
include/boost/function_types/detail/components_impl/arity20_0.hpp \
include/boost/function_types/detail/components_impl/arity20_1.hpp \
include/boost/function_types/detail/cv_traits.hpp \
include/boost/function_types/detail/encoding/aliases_def.hpp \
include/boost/function_types/detail/encoding/aliases_undef.hpp \
include/boost/function_types/detail/encoding/def.hpp \
include/boost/function_types/detail/encoding/undef.hpp \
include/boost/function_types/detail/pp_arity_loop.hpp \
include/boost/function_types/detail/pp_cc_loop/preprocessed.hpp \
include/boost/function_types/detail/pp_loop.hpp \
include/boost/function_types/detail/pp_retag_default_cc/preprocessed.hpp \
include/boost/function_types/detail/pp_tags/cc_tag.hpp \
include/boost/function_types/detail/pp_tags/preprocessed.hpp \
include/boost/function_types/detail/pp_variate_loop/preprocessed.hpp \
include/boost/function_types/detail/retag_default_cc.hpp \
include/boost/function_types/detail/synthesize.hpp \
include/boost/function_types/detail/synthesize_impl/arity10_0.hpp \
include/boost/function_types/detail/synthesize_impl/arity10_1.hpp \
include/boost/function_types/detail/synthesize_impl/arity20_0.hpp \
include/boost/function_types/detail/synthesize_impl/arity20_1.hpp \
include/boost/function_types/detail/to_sequence.hpp \
include/boost/function_types/function_arity.hpp \
include/boost/function_types/function_pointer.hpp \
include/boost/function_types/function_type.hpp \
include/boost/function_types/is_callable_builtin.hpp \
include/boost/function_types/is_member_function_pointer.hpp \
include/boost/function_types/is_member_pointer.hpp \
include/boost/function_types/member_function_pointer.hpp \
include/boost/function_types/parameter_types.hpp \
include/boost/function_types/property_tags.hpp \
include/boost/function_types/result_type.hpp \
include/boost/functional/hash.hpp \
include/boost/functional/hash/detail/float_functions.hpp \
include/boost/functional/hash/detail/hash_float.hpp \
include/boost/functional/hash/detail/limits.hpp \
include/boost/functional/hash/extensions.hpp \
include/boost/functional/hash/hash.hpp \
include/boost/functional/hash/hash_fwd.hpp \
include/boost/get_pointer.hpp \
include/boost/integer.hpp \
include/boost/integer/static_log2.hpp \
include/boost/integer_fwd.hpp \
include/boost/integer_traits.hpp \
include/boost/intrusive_ptr.hpp \
include/boost/io/ios_state.hpp \
include/boost/io_fwd.hpp \
include/boost/is_placeholder.hpp \
include/boost/iterator.hpp \
include/boost/iterator/detail/config_def.hpp \
include/boost/iterator/detail/config_undef.hpp \
include/boost/iterator/detail/enable_if.hpp \
include/boost/iterator/detail/facade_iterator_category.hpp \
include/boost/iterator/interoperable.hpp \
include/boost/iterator/iterator_categories.hpp \
include/boost/iterator/iterator_facade.hpp \
include/boost/iterator/iterator_traits.hpp \
include/boost/last_value.hpp \
include/boost/limits.hpp \
include/boost/make_shared.hpp \
include/boost/mem_fn.hpp \
include/boost/memory_order.hpp \
include/boost/move/core.hpp \
include/boost/move/detail/config_begin.hpp \
include/boost/move/detail/config_end.hpp \
include/boost/move/detail/meta_utils.hpp \
include/boost/move/traits.hpp \
include/boost/move/utility.hpp \
include/boost/mpl/O1_size.hpp \
include/boost/mpl/O1_size_fwd.hpp \
include/boost/mpl/advance.hpp \
include/boost/mpl/advance_fwd.hpp \
include/boost/mpl/always.hpp \
include/boost/mpl/and.hpp \
include/boost/mpl/apply.hpp \
include/boost/mpl/apply_fwd.hpp \
include/boost/mpl/apply_wrap.hpp \
include/boost/mpl/arg.hpp \
include/boost/mpl/arg_fwd.hpp \
include/boost/mpl/assert.hpp \
include/boost/mpl/at.hpp \
include/boost/mpl/at_fwd.hpp \
include/boost/mpl/aux_/O1_size_impl.hpp \
include/boost/mpl/aux_/adl_barrier.hpp \
include/boost/mpl/aux_/advance_backward.hpp \
include/boost/mpl/aux_/advance_forward.hpp \
include/boost/mpl/aux_/arg_typedef.hpp \
include/boost/mpl/aux_/arithmetic_op.hpp \
include/boost/mpl/aux_/arity.hpp \
include/boost/mpl/aux_/arity_spec.hpp \
include/boost/mpl/aux_/at_impl.hpp \
include/boost/mpl/aux_/begin_end_impl.hpp \
include/boost/mpl/aux_/clear_impl.hpp \
include/boost/mpl/aux_/common_name_wknd.hpp \
include/boost/mpl/aux_/comparison_op.hpp \
include/boost/mpl/aux_/config/adl.hpp \
include/boost/mpl/aux_/config/arrays.hpp \
include/boost/mpl/aux_/config/bcc.hpp \
include/boost/mpl/aux_/config/bind.hpp \
include/boost/mpl/aux_/config/compiler.hpp \
include/boost/mpl/aux_/config/ctps.hpp \
include/boost/mpl/aux_/config/dependent_nttp.hpp \
include/boost/mpl/aux_/config/dtp.hpp \
include/boost/mpl/aux_/config/eti.hpp \
include/boost/mpl/aux_/config/forwarding.hpp \
include/boost/mpl/aux_/config/gcc.hpp \
include/boost/mpl/aux_/config/has_apply.hpp \
include/boost/mpl/aux_/config/has_xxx.hpp \
include/boost/mpl/aux_/config/integral.hpp \
include/boost/mpl/aux_/config/intel.hpp \
include/boost/mpl/aux_/config/lambda.hpp \
include/boost/mpl/aux_/config/msvc.hpp \
include/boost/mpl/aux_/config/msvc_typename.hpp \
include/boost/mpl/aux_/config/nttp.hpp \
include/boost/mpl/aux_/config/overload_resolution.hpp \
include/boost/mpl/aux_/config/pp_counter.hpp \
include/boost/mpl/aux_/config/preprocessor.hpp \
include/boost/mpl/aux_/config/static_constant.hpp \
include/boost/mpl/aux_/config/ttp.hpp \
include/boost/mpl/aux_/config/typeof.hpp \
include/boost/mpl/aux_/config/use_preprocessed.hpp \
include/boost/mpl/aux_/config/workaround.hpp \
include/boost/mpl/aux_/find_if_pred.hpp \
include/boost/mpl/aux_/fold_impl.hpp \
include/boost/mpl/aux_/front_impl.hpp \
include/boost/mpl/aux_/full_lambda.hpp \
include/boost/mpl/aux_/has_apply.hpp \
include/boost/mpl/aux_/has_begin.hpp \
include/boost/mpl/aux_/has_size.hpp \
include/boost/mpl/aux_/has_tag.hpp \
include/boost/mpl/aux_/has_type.hpp \
include/boost/mpl/aux_/include_preprocessed.hpp \
include/boost/mpl/aux_/inserter_algorithm.hpp \
include/boost/mpl/aux_/integral_wrapper.hpp \
include/boost/mpl/aux_/is_msvc_eti_arg.hpp \
include/boost/mpl/aux_/iter_apply.hpp \
include/boost/mpl/aux_/iter_fold_if_impl.hpp \
include/boost/mpl/aux_/iter_fold_impl.hpp \
include/boost/mpl/aux_/lambda_arity_param.hpp \
include/boost/mpl/aux_/lambda_spec.hpp \
include/boost/mpl/aux_/lambda_support.hpp \
include/boost/mpl/aux_/largest_int.hpp \
include/boost/mpl/aux_/msvc_eti_base.hpp \
include/boost/mpl/aux_/msvc_never_true.hpp \
include/boost/mpl/aux_/msvc_type.hpp \
include/boost/mpl/aux_/na.hpp \
include/boost/mpl/aux_/na_assert.hpp \
include/boost/mpl/aux_/na_fwd.hpp \
include/boost/mpl/aux_/na_spec.hpp \
include/boost/mpl/aux_/nested_type_wknd.hpp \
include/boost/mpl/aux_/nttp_decl.hpp \
include/boost/mpl/aux_/numeric_cast_utils.hpp \
include/boost/mpl/aux_/numeric_op.hpp \
include/boost/mpl/aux_/pop_front_impl.hpp \
include/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp \
include/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp \
include/boost/mpl/aux_/preprocessed/gcc/and.hpp \
include/boost/mpl/aux_/preprocessed/gcc/apply.hpp \
include/boost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp \
include/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp \
include/boost/mpl/aux_/preprocessed/gcc/arg.hpp \
include/boost/mpl/aux_/preprocessed/gcc/bind.hpp \
include/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp \
include/boost/mpl/aux_/preprocessed/gcc/bitand.hpp \
include/boost/mpl/aux_/preprocessed/gcc/bitxor.hpp \
include/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp \
include/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp \
include/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp \
include/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp \
include/boost/mpl/aux_/preprocessed/gcc/less.hpp \
include/boost/mpl/aux_/preprocessed/gcc/minus.hpp \
include/boost/mpl/aux_/preprocessed/gcc/or.hpp \
include/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp \
include/boost/mpl/aux_/preprocessed/gcc/plus.hpp \
include/boost/mpl/aux_/preprocessed/gcc/quote.hpp \
include/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp \
include/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp \
include/boost/mpl/aux_/preprocessed/gcc/vector.hpp \
include/boost/mpl/aux_/preprocessor/def_params_tail.hpp \
include/boost/mpl/aux_/preprocessor/default_params.hpp \
include/boost/mpl/aux_/preprocessor/enum.hpp \
include/boost/mpl/aux_/preprocessor/params.hpp \
include/boost/mpl/aux_/push_back_impl.hpp \
include/boost/mpl/aux_/push_front_impl.hpp \
include/boost/mpl/aux_/reverse_fold_impl.hpp \
include/boost/mpl/aux_/size_impl.hpp \
include/boost/mpl/aux_/static_cast.hpp \
include/boost/mpl/aux_/template_arity.hpp \
include/boost/mpl/aux_/template_arity_fwd.hpp \
include/boost/mpl/aux_/traits_lambda_spec.hpp \
include/boost/mpl/aux_/transform_iter.hpp \
include/boost/mpl/aux_/type_wrapper.hpp \
include/boost/mpl/aux_/unwrap.hpp \
include/boost/mpl/aux_/value_wknd.hpp \
include/boost/mpl/aux_/yes_no.hpp \
include/boost/mpl/back_fwd.hpp \
include/boost/mpl/back_inserter.hpp \
include/boost/mpl/begin_end.hpp \
include/boost/mpl/begin_end_fwd.hpp \
include/boost/mpl/bind.hpp \
include/boost/mpl/bind_fwd.hpp \
include/boost/mpl/bitand.hpp \
include/boost/mpl/bitxor.hpp \
include/boost/mpl/bool.hpp \
include/boost/mpl/bool_fwd.hpp \
include/boost/mpl/clear.hpp \
include/boost/mpl/clear_fwd.hpp \
include/boost/mpl/deref.hpp \
include/boost/mpl/distance.hpp \
include/boost/mpl/distance_fwd.hpp \
include/boost/mpl/empty_fwd.hpp \
include/boost/mpl/eval_if.hpp \
include/boost/mpl/find_if.hpp \
include/boost/mpl/fold.hpp \
include/boost/mpl/for_each.hpp \
include/boost/mpl/front.hpp \
include/boost/mpl/front_fwd.hpp \
include/boost/mpl/front_inserter.hpp \
include/boost/mpl/has_xxx.hpp \
include/boost/mpl/identity.hpp \
include/boost/mpl/if.hpp \
include/boost/mpl/inserter.hpp \
include/boost/mpl/int.hpp \
include/boost/mpl/int_fwd.hpp \
include/boost/mpl/integral_c.hpp \
include/boost/mpl/integral_c_fwd.hpp \
include/boost/mpl/integral_c_tag.hpp \
include/boost/mpl/is_sequence.hpp \
include/boost/mpl/iter_fold.hpp \
include/boost/mpl/iter_fold_if.hpp \
include/boost/mpl/iterator_category.hpp \
include/boost/mpl/iterator_range.hpp \
include/boost/mpl/iterator_tags.hpp \
include/boost/mpl/lambda.hpp \
include/boost/mpl/lambda_fwd.hpp \
include/boost/mpl/less.hpp \
include/boost/mpl/limits/arity.hpp \
include/boost/mpl/limits/vector.hpp \
include/boost/mpl/logical.hpp \
include/boost/mpl/long.hpp \
include/boost/mpl/long_fwd.hpp \
include/boost/mpl/max_element.hpp \
include/boost/mpl/min_max.hpp \
include/boost/mpl/minus.hpp \
include/boost/mpl/negate.hpp \
include/boost/mpl/next.hpp \
include/boost/mpl/next_prior.hpp \
include/boost/mpl/not.hpp \
include/boost/mpl/numeric_cast.hpp \
include/boost/mpl/or.hpp \
include/boost/mpl/pair.hpp \
include/boost/mpl/pair_view.hpp \
include/boost/mpl/placeholders.hpp \
include/boost/mpl/plus.hpp \
include/boost/mpl/pop_back_fwd.hpp \
include/boost/mpl/pop_front.hpp \
include/boost/mpl/pop_front_fwd.hpp \
include/boost/mpl/prior.hpp \
include/boost/mpl/protect.hpp \
include/boost/mpl/push_back.hpp \
include/boost/mpl/push_back_fwd.hpp \
include/boost/mpl/push_front.hpp \
include/boost/mpl/push_front_fwd.hpp \
include/boost/mpl/quote.hpp \
include/boost/mpl/remove.hpp \
include/boost/mpl/remove_if.hpp \
include/boost/mpl/reverse_fold.hpp \
include/boost/mpl/same_as.hpp \
include/boost/mpl/sequence_tag.hpp \
include/boost/mpl/sequence_tag_fwd.hpp \
include/boost/mpl/size.hpp \
include/boost/mpl/size_fwd.hpp \
include/boost/mpl/size_t.hpp \
include/boost/mpl/size_t_fwd.hpp \
include/boost/mpl/tag.hpp \
include/boost/mpl/transform.hpp \
include/boost/mpl/transform_view.hpp \
include/boost/mpl/vector.hpp \
include/boost/mpl/vector/aux_/O1_size.hpp \
include/boost/mpl/vector/aux_/at.hpp \
include/boost/mpl/vector/aux_/back.hpp \
include/boost/mpl/vector/aux_/begin_end.hpp \
include/boost/mpl/vector/aux_/clear.hpp \
include/boost/mpl/vector/aux_/empty.hpp \
include/boost/mpl/vector/aux_/front.hpp \
include/boost/mpl/vector/aux_/include_preprocessed.hpp \
include/boost/mpl/vector/aux_/item.hpp \
include/boost/mpl/vector/aux_/iterator.hpp \
include/boost/mpl/vector/aux_/pop_back.hpp \
include/boost/mpl/vector/aux_/pop_front.hpp \
include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10.hpp \
include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20.hpp \
include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30.hpp \
include/boost/mpl/vector/aux_/push_back.hpp \
include/boost/mpl/vector/aux_/push_front.hpp \
include/boost/mpl/vector/aux_/size.hpp \
include/boost/mpl/vector/aux_/tag.hpp \
include/boost/mpl/vector/aux_/vector0.hpp \
include/boost/mpl/vector/vector0.hpp \
include/boost/mpl/vector/vector10.hpp \
include/boost/mpl/vector/vector20.hpp \
include/boost/mpl/vector/vector30.hpp \
include/boost/mpl/void.hpp \
include/boost/mpl/void_fwd.hpp \
include/boost/next_prior.hpp \
include/boost/noncopyable.hpp \
include/boost/none.hpp \
include/boost/none_t.hpp \
include/boost/operators.hpp \
include/boost/optional.hpp \
include/boost/optional/optional.hpp \
include/boost/optional/optional_fwd.hpp \
include/boost/preprocessor.hpp \
include/boost/preprocessor/arithmetic.hpp \
include/boost/preprocessor/arithmetic/add.hpp \
include/boost/preprocessor/arithmetic/dec.hpp \
include/boost/preprocessor/arithmetic/detail/div_base.hpp \
include/boost/preprocessor/arithmetic/div.hpp \
include/boost/preprocessor/arithmetic/inc.hpp \
include/boost/preprocessor/arithmetic/mod.hpp \
include/boost/preprocessor/arithmetic/mul.hpp \
include/boost/preprocessor/arithmetic/sub.hpp \
include/boost/preprocessor/array.hpp \
include/boost/preprocessor/array/data.hpp \
include/boost/preprocessor/array/elem.hpp \
include/boost/preprocessor/array/enum.hpp \
include/boost/preprocessor/array/insert.hpp \
include/boost/preprocessor/array/pop_back.hpp \
include/boost/preprocessor/array/pop_front.hpp \
include/boost/preprocessor/array/push_back.hpp \
include/boost/preprocessor/array/push_front.hpp \
include/boost/preprocessor/array/remove.hpp \
include/boost/preprocessor/array/replace.hpp \
include/boost/preprocessor/array/reverse.hpp \
include/boost/preprocessor/array/size.hpp \
include/boost/preprocessor/array/to_list.hpp \
include/boost/preprocessor/array/to_seq.hpp \
include/boost/preprocessor/array/to_tuple.hpp \
include/boost/preprocessor/cat.hpp \
include/boost/preprocessor/comma_if.hpp \
include/boost/preprocessor/comparison.hpp \
include/boost/preprocessor/comparison/equal.hpp \
include/boost/preprocessor/comparison/greater.hpp \
include/boost/preprocessor/comparison/greater_equal.hpp \
include/boost/preprocessor/comparison/less.hpp \
include/boost/preprocessor/comparison/less_equal.hpp \
include/boost/preprocessor/comparison/not_equal.hpp \
include/boost/preprocessor/config/config.hpp \
include/boost/preprocessor/config/limits.hpp \
include/boost/preprocessor/control.hpp \
include/boost/preprocessor/control/deduce_d.hpp \
include/boost/preprocessor/control/detail/while.hpp \
include/boost/preprocessor/control/expr_if.hpp \
include/boost/preprocessor/control/expr_iif.hpp \
include/boost/preprocessor/control/if.hpp \
include/boost/preprocessor/control/iif.hpp \
include/boost/preprocessor/control/while.hpp \
include/boost/preprocessor/debug.hpp \
include/boost/preprocessor/debug/assert.hpp \
include/boost/preprocessor/debug/error.hpp \
include/boost/preprocessor/debug/line.hpp \
include/boost/preprocessor/detail/auto_rec.hpp \
include/boost/preprocessor/detail/check.hpp \
include/boost/preprocessor/detail/is_binary.hpp \
include/boost/preprocessor/detail/is_unary.hpp \
include/boost/preprocessor/empty.hpp \
include/boost/preprocessor/enum.hpp \
include/boost/preprocessor/enum_params.hpp \
include/boost/preprocessor/facilities.hpp \
include/boost/preprocessor/facilities/apply.hpp \
include/boost/preprocessor/facilities/empty.hpp \
include/boost/preprocessor/facilities/expand.hpp \
include/boost/preprocessor/facilities/identity.hpp \
include/boost/preprocessor/facilities/intercept.hpp \
include/boost/preprocessor/facilities/overload.hpp \
include/boost/preprocessor/identity.hpp \
include/boost/preprocessor/inc.hpp \
include/boost/preprocessor/iterate.hpp \
include/boost/preprocessor/iteration.hpp \
include/boost/preprocessor/iteration/detail/bounds/lower1.hpp \
include/boost/preprocessor/iteration/detail/bounds/upper1.hpp \
include/boost/preprocessor/iteration/detail/iter/forward1.hpp \
include/boost/preprocessor/iteration/iterate.hpp \
include/boost/preprocessor/iteration/local.hpp \
include/boost/preprocessor/iteration/self.hpp \
include/boost/preprocessor/library.hpp \
include/boost/preprocessor/list.hpp \
include/boost/preprocessor/list/adt.hpp \
include/boost/preprocessor/list/append.hpp \
include/boost/preprocessor/list/at.hpp \
include/boost/preprocessor/list/cat.hpp \
include/boost/preprocessor/list/detail/fold_left.hpp \
include/boost/preprocessor/list/detail/fold_right.hpp \
include/boost/preprocessor/list/enum.hpp \
include/boost/preprocessor/list/filter.hpp \
include/boost/preprocessor/list/first_n.hpp \
include/boost/preprocessor/list/fold_left.hpp \
include/boost/preprocessor/list/fold_right.hpp \
include/boost/preprocessor/list/for_each.hpp \
include/boost/preprocessor/list/for_each_i.hpp \
include/boost/preprocessor/list/for_each_product.hpp \
include/boost/preprocessor/list/rest_n.hpp \
include/boost/preprocessor/list/reverse.hpp \
include/boost/preprocessor/list/size.hpp \
include/boost/preprocessor/list/to_array.hpp \
include/boost/preprocessor/list/to_seq.hpp \
include/boost/preprocessor/list/to_tuple.hpp \
include/boost/preprocessor/list/transform.hpp \
include/boost/preprocessor/logical.hpp \
include/boost/preprocessor/logical/and.hpp \
include/boost/preprocessor/logical/bitand.hpp \
include/boost/preprocessor/logical/bitnor.hpp \
include/boost/preprocessor/logical/bitor.hpp \
include/boost/preprocessor/logical/bitxor.hpp \
include/boost/preprocessor/logical/bool.hpp \
include/boost/preprocessor/logical/compl.hpp \
include/boost/preprocessor/logical/nor.hpp \
include/boost/preprocessor/logical/not.hpp \
include/boost/preprocessor/logical/or.hpp \
include/boost/preprocessor/logical/xor.hpp \
include/boost/preprocessor/punctuation.hpp \
include/boost/preprocessor/punctuation/comma.hpp \
include/boost/preprocessor/punctuation/comma_if.hpp \
include/boost/preprocessor/punctuation/paren.hpp \
include/boost/preprocessor/punctuation/paren_if.hpp \
include/boost/preprocessor/repeat.hpp \
include/boost/preprocessor/repetition.hpp \
include/boost/preprocessor/repetition/deduce_r.hpp \
include/boost/preprocessor/repetition/deduce_z.hpp \
include/boost/preprocessor/repetition/detail/for.hpp \
include/boost/preprocessor/repetition/enum.hpp \
include/boost/preprocessor/repetition/enum_binary_params.hpp \
include/boost/preprocessor/repetition/enum_params.hpp \
include/boost/preprocessor/repetition/enum_params_with_a_default.hpp \
include/boost/preprocessor/repetition/enum_params_with_defaults.hpp \
include/boost/preprocessor/repetition/enum_shifted.hpp \
include/boost/preprocessor/repetition/enum_shifted_binary_params.hpp \
include/boost/preprocessor/repetition/enum_shifted_params.hpp \
include/boost/preprocessor/repetition/enum_trailing.hpp \
include/boost/preprocessor/repetition/enum_trailing_binary_params.hpp \
include/boost/preprocessor/repetition/enum_trailing_params.hpp \
include/boost/preprocessor/repetition/for.hpp \
include/boost/preprocessor/repetition/repeat.hpp \
include/boost/preprocessor/repetition/repeat_from_to.hpp \
include/boost/preprocessor/selection.hpp \
include/boost/preprocessor/selection/max.hpp \
include/boost/preprocessor/selection/min.hpp \
include/boost/preprocessor/seq.hpp \
include/boost/preprocessor/seq/cat.hpp \
include/boost/preprocessor/seq/detail/binary_transform.hpp \
include/boost/preprocessor/seq/detail/split.hpp \
include/boost/preprocessor/seq/elem.hpp \
include/boost/preprocessor/seq/enum.hpp \
include/boost/preprocessor/seq/filter.hpp \
include/boost/preprocessor/seq/first_n.hpp \
include/boost/preprocessor/seq/fold_left.hpp \
include/boost/preprocessor/seq/fold_right.hpp \
include/boost/preprocessor/seq/for_each.hpp \
include/boost/preprocessor/seq/for_each_i.hpp \
include/boost/preprocessor/seq/for_each_product.hpp \
include/boost/preprocessor/seq/insert.hpp \
include/boost/preprocessor/seq/pop_back.hpp \
include/boost/preprocessor/seq/pop_front.hpp \
include/boost/preprocessor/seq/push_back.hpp \
include/boost/preprocessor/seq/push_front.hpp \
include/boost/preprocessor/seq/remove.hpp \
include/boost/preprocessor/seq/replace.hpp \
include/boost/preprocessor/seq/rest_n.hpp \
include/boost/preprocessor/seq/reverse.hpp \
include/boost/preprocessor/seq/seq.hpp \
include/boost/preprocessor/seq/size.hpp \
include/boost/preprocessor/seq/subseq.hpp \
include/boost/preprocessor/seq/to_array.hpp \
include/boost/preprocessor/seq/to_list.hpp \
include/boost/preprocessor/seq/to_tuple.hpp \
include/boost/preprocessor/seq/transform.hpp \
include/boost/preprocessor/slot.hpp \
include/boost/preprocessor/slot/detail/def.hpp \
include/boost/preprocessor/slot/detail/shared.hpp \
include/boost/preprocessor/slot/slot.hpp \
include/boost/preprocessor/stringize.hpp \
include/boost/preprocessor/tuple.hpp \
include/boost/preprocessor/tuple/eat.hpp \
include/boost/preprocessor/tuple/elem.hpp \
include/boost/preprocessor/tuple/enum.hpp \
include/boost/preprocessor/tuple/rem.hpp \
include/boost/preprocessor/tuple/reverse.hpp \
include/boost/preprocessor/tuple/size.hpp \
include/boost/preprocessor/tuple/to_array.hpp \
include/boost/preprocessor/tuple/to_list.hpp \
include/boost/preprocessor/tuple/to_seq.hpp \
include/boost/preprocessor/variadic.hpp \
include/boost/preprocessor/variadic/elem.hpp \
include/boost/preprocessor/variadic/size.hpp \
include/boost/preprocessor/variadic/to_array.hpp \
include/boost/preprocessor/variadic/to_list.hpp \
include/boost/preprocessor/variadic/to_seq.hpp \
include/boost/preprocessor/variadic/to_tuple.hpp \
include/boost/ratio/config.hpp \
include/boost/ratio/detail/mpl/abs.hpp \
include/boost/ratio/detail/mpl/gcd.hpp \
include/boost/ratio/detail/mpl/lcm.hpp \
include/boost/ratio/detail/mpl/sign.hpp \
include/boost/ratio/detail/overflow_helpers.hpp \
include/boost/ratio/ratio.hpp \
include/boost/ratio/ratio_fwd.hpp \
include/boost/ref.hpp \
include/boost/scoped_array.hpp \
include/boost/scoped_ptr.hpp \
include/boost/shared_array.hpp \
include/boost/shared_ptr.hpp \
include/boost/signal.hpp \
include/boost/signals/connection.hpp \
include/boost/signals/detail/config.hpp \
include/boost/signals/detail/named_slot_map.hpp \
include/boost/signals/detail/signal_base.hpp \
include/boost/signals/detail/signals_common.hpp \
include/boost/signals/detail/slot_call_iterator.hpp \
include/boost/signals/signal0.hpp \
include/boost/signals/signal1.hpp \
include/boost/signals/signal10.hpp \
include/boost/signals/signal2.hpp \
include/boost/signals/signal3.hpp \
include/boost/signals/signal4.hpp \
include/boost/signals/signal5.hpp \
include/boost/signals/signal6.hpp \
include/boost/signals/signal7.hpp \
include/boost/signals/signal8.hpp \
include/boost/signals/signal9.hpp \
include/boost/signals/signal_template.hpp \
include/boost/signals/slot.hpp \
include/boost/signals/trackable.hpp \
include/boost/smart_ptr.hpp \
include/boost/smart_ptr/allocate_shared_array.hpp \
include/boost/smart_ptr/bad_weak_ptr.hpp \
include/boost/smart_ptr/detail/allocate_array_helper.hpp \
include/boost/smart_ptr/detail/array_deleter.hpp \
include/boost/smart_ptr/detail/array_traits.hpp \
include/boost/smart_ptr/detail/array_utility.hpp \
include/boost/smart_ptr/detail/make_array_helper.hpp \
include/boost/smart_ptr/detail/operator_bool.hpp \
include/boost/smart_ptr/detail/shared_count.hpp \
include/boost/smart_ptr/detail/sp_convertible.hpp \
include/boost/smart_ptr/detail/sp_counted_base.hpp \
include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp \
include/boost/smart_ptr/detail/sp_counted_impl.hpp \
include/boost/smart_ptr/detail/sp_forward.hpp \
include/boost/smart_ptr/detail/sp_has_sync.hpp \
include/boost/smart_ptr/detail/sp_if_array.hpp \
include/boost/smart_ptr/detail/sp_nullptr_t.hpp \
include/boost/smart_ptr/detail/spinlock.hpp \
include/boost/smart_ptr/detail/spinlock_pool.hpp \
include/boost/smart_ptr/detail/spinlock_sync.hpp \
include/boost/smart_ptr/detail/yield_k.hpp \
include/boost/smart_ptr/enable_shared_from_this.hpp \
include/boost/smart_ptr/intrusive_ptr.hpp \
include/boost/smart_ptr/make_shared.hpp \
include/boost/smart_ptr/make_shared_array.hpp \
include/boost/smart_ptr/make_shared_object.hpp \
include/boost/smart_ptr/scoped_array.hpp \
include/boost/smart_ptr/scoped_ptr.hpp \
include/boost/smart_ptr/shared_array.hpp \
include/boost/smart_ptr/shared_ptr.hpp \
include/boost/smart_ptr/weak_ptr.hpp \
include/boost/static_assert.hpp \
include/boost/swap.hpp \
include/boost/system/api_config.hpp \
include/boost/system/config.hpp \
include/boost/system/error_code.hpp \
include/boost/system/system_error.hpp \
include/boost/thread/condition.hpp \
include/boost/thread/condition_variable.hpp \
include/boost/thread/cv_status.hpp \
include/boost/thread/detail/config.hpp \
include/boost/thread/detail/delete.hpp \
include/boost/thread/detail/invoke.hpp \
include/boost/thread/detail/is_convertible.hpp \
include/boost/thread/detail/lockable_wrapper.hpp \
include/boost/thread/detail/make_tuple_indices.hpp \
include/boost/thread/detail/move.hpp \
include/boost/thread/detail/platform.hpp \
include/boost/thread/detail/thread.hpp \
include/boost/thread/detail/thread_group.hpp \
include/boost/thread/detail/thread_heap_alloc.hpp \
include/boost/thread/detail/thread_interruption.hpp \
include/boost/thread/exceptions.hpp \
include/boost/thread/lock_guard.hpp \
include/boost/thread/lock_options.hpp \
include/boost/thread/lock_types.hpp \
include/boost/thread/lockable_traits.hpp \
include/boost/thread/mutex.hpp \
include/boost/thread/pthread/condition_variable.hpp \
include/boost/thread/pthread/condition_variable_fwd.hpp \
include/boost/thread/pthread/mutex.hpp \
include/boost/thread/pthread/pthread_mutex_scoped_lock.hpp \
include/boost/thread/pthread/recursive_mutex.hpp \
include/boost/thread/pthread/shared_mutex.hpp \
include/boost/thread/pthread/thread_data.hpp \
include/boost/thread/pthread/thread_heap_alloc.hpp \
include/boost/thread/pthread/timespec.hpp \
include/boost/thread/recursive_mutex.hpp \
include/boost/thread/shared_mutex.hpp \
include/boost/thread/thread.hpp \
include/boost/thread/thread_only.hpp \
include/boost/thread/thread_time.hpp \
include/boost/thread/v2/thread.hpp \
include/boost/thread/xtime.hpp \
include/boost/throw_exception.hpp \
include/boost/type.hpp \
include/boost/type_traits.hpp \
include/boost/type_traits/add_const.hpp \
include/boost/type_traits/add_cv.hpp \
include/boost/type_traits/add_lvalue_reference.hpp \
include/boost/type_traits/add_pointer.hpp \
include/boost/type_traits/add_reference.hpp \
include/boost/type_traits/add_rvalue_reference.hpp \
include/boost/type_traits/add_volatile.hpp \
include/boost/type_traits/aligned_storage.hpp \
include/boost/type_traits/alignment_of.hpp \
include/boost/type_traits/broken_compiler_spec.hpp \
include/boost/type_traits/common_type.hpp \
include/boost/type_traits/composite_traits.hpp \
include/boost/type_traits/conditional.hpp \
include/boost/type_traits/config.hpp \
include/boost/type_traits/conversion_traits.hpp \
include/boost/type_traits/cv_traits.hpp \
include/boost/type_traits/decay.hpp \
include/boost/type_traits/detail/bool_trait_def.hpp \
include/boost/type_traits/detail/bool_trait_undef.hpp \
include/boost/type_traits/detail/cv_traits_impl.hpp \
include/boost/type_traits/detail/false_result.hpp \
include/boost/type_traits/detail/has_binary_operator.hpp \
include/boost/type_traits/detail/has_postfix_operator.hpp \
include/boost/type_traits/detail/has_prefix_operator.hpp \
include/boost/type_traits/detail/ice_and.hpp \
include/boost/type_traits/detail/ice_eq.hpp \
include/boost/type_traits/detail/ice_not.hpp \
include/boost/type_traits/detail/ice_or.hpp \
include/boost/type_traits/detail/is_function_ptr_helper.hpp \
include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp \
include/boost/type_traits/detail/size_t_trait_def.hpp \
include/boost/type_traits/detail/size_t_trait_undef.hpp \
include/boost/type_traits/detail/template_arity_spec.hpp \
include/boost/type_traits/detail/type_trait_def.hpp \
include/boost/type_traits/detail/type_trait_undef.hpp \
include/boost/type_traits/detail/yes_no_type.hpp \
include/boost/type_traits/extent.hpp \
include/boost/type_traits/floating_point_promotion.hpp \
include/boost/type_traits/function_traits.hpp \
include/boost/type_traits/has_bit_and.hpp \
include/boost/type_traits/has_bit_and_assign.hpp \
include/boost/type_traits/has_bit_or.hpp \
include/boost/type_traits/has_bit_or_assign.hpp \
include/boost/type_traits/has_bit_xor.hpp \
include/boost/type_traits/has_bit_xor_assign.hpp \
include/boost/type_traits/has_complement.hpp \
include/boost/type_traits/has_dereference.hpp \
include/boost/type_traits/has_divides.hpp \
include/boost/type_traits/has_divides_assign.hpp \
include/boost/type_traits/has_equal_to.hpp \
include/boost/type_traits/has_greater.hpp \
include/boost/type_traits/has_greater_equal.hpp \
include/boost/type_traits/has_left_shift.hpp \
include/boost/type_traits/has_left_shift_assign.hpp \
include/boost/type_traits/has_less.hpp \
include/boost/type_traits/has_less_equal.hpp \
include/boost/type_traits/has_logical_and.hpp \
include/boost/type_traits/has_logical_not.hpp \
include/boost/type_traits/has_logical_or.hpp \
include/boost/type_traits/has_minus.hpp \
include/boost/type_traits/has_minus_assign.hpp \
include/boost/type_traits/has_modulus.hpp \
include/boost/type_traits/has_modulus_assign.hpp \
include/boost/type_traits/has_multiplies.hpp \
include/boost/type_traits/has_multiplies_assign.hpp \
include/boost/type_traits/has_negate.hpp \
include/boost/type_traits/has_new_operator.hpp \
include/boost/type_traits/has_not_equal_to.hpp \
include/boost/type_traits/has_nothrow_assign.hpp \
include/boost/type_traits/has_nothrow_constructor.hpp \
include/boost/type_traits/has_nothrow_copy.hpp \
include/boost/type_traits/has_nothrow_destructor.hpp \
include/boost/type_traits/has_operator.hpp \
include/boost/type_traits/has_plus.hpp \
include/boost/type_traits/has_plus_assign.hpp \
include/boost/type_traits/has_post_decrement.hpp \
include/boost/type_traits/has_post_increment.hpp \
include/boost/type_traits/has_pre_decrement.hpp \
include/boost/type_traits/has_pre_increment.hpp \
include/boost/type_traits/has_right_shift.hpp \
include/boost/type_traits/has_right_shift_assign.hpp \
include/boost/type_traits/has_trivial_assign.hpp \
include/boost/type_traits/has_trivial_constructor.hpp \
include/boost/type_traits/has_trivial_copy.hpp \
include/boost/type_traits/has_trivial_destructor.hpp \
include/boost/type_traits/has_trivial_move_assign.hpp \
include/boost/type_traits/has_trivial_move_constructor.hpp \
include/boost/type_traits/has_unary_minus.hpp \
include/boost/type_traits/has_unary_plus.hpp \
include/boost/type_traits/has_virtual_destructor.hpp \
include/boost/type_traits/ice.hpp \
include/boost/type_traits/integral_constant.hpp \
include/boost/type_traits/integral_promotion.hpp \
include/boost/type_traits/intrinsics.hpp \
include/boost/type_traits/is_abstract.hpp \
include/boost/type_traits/is_arithmetic.hpp \
include/boost/type_traits/is_array.hpp \
include/boost/type_traits/is_base_and_derived.hpp \
include/boost/type_traits/is_base_of.hpp \
include/boost/type_traits/is_class.hpp \
include/boost/type_traits/is_complex.hpp \
include/boost/type_traits/is_compound.hpp \
include/boost/type_traits/is_const.hpp \
include/boost/type_traits/is_convertible.hpp \
include/boost/type_traits/is_copy_constructible.hpp \
include/boost/type_traits/is_empty.hpp \
include/boost/type_traits/is_enum.hpp \
include/boost/type_traits/is_float.hpp \
include/boost/type_traits/is_floating_point.hpp \
include/boost/type_traits/is_function.hpp \
include/boost/type_traits/is_fundamental.hpp \
include/boost/type_traits/is_integral.hpp \
include/boost/type_traits/is_lvalue_reference.hpp \
include/boost/type_traits/is_member_function_pointer.hpp \
include/boost/type_traits/is_member_object_pointer.hpp \
include/boost/type_traits/is_member_pointer.hpp \
include/boost/type_traits/is_nothrow_move_assignable.hpp \
include/boost/type_traits/is_nothrow_move_constructible.hpp \
include/boost/type_traits/is_object.hpp \
include/boost/type_traits/is_pod.hpp \
include/boost/type_traits/is_pointer.hpp \
include/boost/type_traits/is_polymorphic.hpp \
include/boost/type_traits/is_reference.hpp \
include/boost/type_traits/is_rvalue_reference.hpp \
include/boost/type_traits/is_same.hpp \
include/boost/type_traits/is_scalar.hpp \
include/boost/type_traits/is_signed.hpp \
include/boost/type_traits/is_stateless.hpp \
include/boost/type_traits/is_union.hpp \
include/boost/type_traits/is_unsigned.hpp \
include/boost/type_traits/is_virtual_base_of.hpp \
include/boost/type_traits/is_void.hpp \
include/boost/type_traits/is_volatile.hpp \
include/boost/type_traits/make_signed.hpp \
include/boost/type_traits/make_unsigned.hpp \
include/boost/type_traits/promote.hpp \
include/boost/type_traits/rank.hpp \
include/boost/type_traits/remove_all_extents.hpp \
include/boost/type_traits/remove_bounds.hpp \
include/boost/type_traits/remove_const.hpp \
include/boost/type_traits/remove_cv.hpp \
include/boost/type_traits/remove_extent.hpp \
include/boost/type_traits/remove_pointer.hpp \
include/boost/type_traits/remove_reference.hpp \
include/boost/type_traits/remove_volatile.hpp \
include/boost/type_traits/type_with_alignment.hpp \
include/boost/utility.hpp \
include/boost/utility/addressof.hpp \
include/boost/utility/base_from_member.hpp \
include/boost/utility/binary.hpp \
include/boost/utility/compare_pointees.hpp \
include/boost/utility/declval.hpp \
include/boost/utility/detail/in_place_factory_prefix.hpp \
include/boost/utility/detail/in_place_factory_suffix.hpp \
include/boost/utility/enable_if.hpp \
include/boost/utility/identity_type.hpp \
include/boost/utility/in_place_factory.hpp \
include/boost/utility/swap.hpp \
include/boost/utility/value_init.hpp \
include/boost/version.hpp \
include/boost/visit_each.hpp \
include/boost/weak_ptr.hpp \
"

usage() {
  echo "usage:"
  echo "${0} <sdk-archive>"
  echo ""
  echo " <sdk-archive> : The archive file with the aldebaran linux sdk"
  exit 1
}

if [ $# -ne 1 ]
then
  usage
else
  archive="${1}"
fi

tmpdir="$(mktemp -d /tmp/bhuman.XXXXXX)"
archiveDir="${archive}"
archiveBase="$(dirname "${archiveDir}")"
archiveDir="${archiveDir#"${archiveBase}"}"
archiveDir="${archiveDir#/}"
if [ "${defaultArchive}" != "${archiveDir}" ]
then
  warning "sdk-archive (\"${archiveDir}\") does not match the expected name (\"${defaultArchive}\")."
fi
archiveDir="${archiveDir%\.tar\.gz}"

debug "tempdir: " "${tmpdir}"
debug "archive: " "${archive}"
debug "archiveBase: " "${archiveBase}"
debug "archiveDir: " "${archiveDir}"

for f in ${includesAlcommon}
do
  alcommonIncludes+="${archiveDir}/${f} "
done

for f in ${includesBoost}
do
  boostIncludes+="${archiveDir}/${f} "
done

alcommonContent="${alcommonIncludes}${archiveDir}/lib/libalcommon.so"
echo -n "Unpacking required content..."
tar -xz -C "${tmpdir}" -f "${archive}" ${alcommonContent}
tar -xz -C "${tmpdir}" -f "${archive}" ${boostIncludes}
echo "Done"

echo -n "Copying alcommon headers to destination..."
mkdir -p "${baseDir}/../Util/alcommon/include" 
for f in ${includesAlcommon}
do
  destFile="${f#include/}"
  dirOfFile="$(dirname "${destFile}")"
  
  if [ ! -d "${baseDir}/../Util/alcommon/include/${dirOfFile}" ]
  then
    mkdir -p "${baseDir}/../Util/alcommon/include/${dirOfFile}"
  fi
  LC_ALL='C' tr -d '\r' < "${tmpdir}/${archiveDir}/${f}" > "${baseDir}/../Util/alcommon/include/${destFile}"
done
echo "Done"

echo -n "Copying alcommon library to destination..."
mkdir -p "${baseDir}/../Util/alcommon/lib/linux" 
cp "${tmpdir}/${archiveDir}/lib/libalcommon.so" "${baseDir}/../Util/alcommon/lib/linux/libalcommon.so"
echo "Done"

echo -n "Copying boost headers to destination..."
for f in ${includesBoost}
do
  destFile="${f#include/}"
  dirOfFile="$(dirname "${destFile}")"
  
  debug "\tdestFile:  $destFile"
  debug "\tdirOfFile: $dirOfFile"

  if [ ! -d "${baseDir}/../Util/boost/linux/${dirOfFile}" ]
  then
    mkdir -p "${baseDir}/../Util/boost/linux/${dirOfFile}"
  fi
  LC_ALL='C' tr -d '\r' < "${tmpdir}/${archiveDir}/${f}" > "${baseDir}/../Util/boost/linux/${destFile}"
done
echo "Done"

echo -n "Cleaning up..."
rm -r "${tmpdir}"
echo "Done"
